#include<stdio.h>
#include<stdlib.h>

int a;
int b = 1;
static int c = 2;
int main(int argc, char* argv[], char* env[])
{
  printf("环境变量:%p\n", env);
  printf("命令参数:%p\n", argv);
  printf("\n");
  char* arr = (char*)malloc(sizeof(char) * 12);  // 此时此指针变量存储堆空间的地址，本身是一个栈空间的变量
  printf("栈:%p\n", &arr);
  printf("堆:%p\n", arr);
  printf("\n");
  printf("未初始化数据:%p\n", &a);
  printf("静态数据:%p\n", &c);
  printf("初始化数据:%p\n", &b);
  printf("\n");
  const char* d = "hello";
  printf("只读常量:%p\n", d);
  printf("代码:%p\n", main);  // main本身就是一个函数，函数所处就是原本的代码区域
  return 0;
}
